1.1 Introduction

About This Course

This course aims to cover the material for the Linux Professional Institute (LPI) Certification for Level 1 (Exams 101 and 102).  This course will provide the necessary content for proficient Linux users and junior administrators.  There are two more levels of certification available from LPI, but those are beyond the scope of this course.  You can learn more at the Linux Professional Institute website.

HistoryLinus Torvalds / Courtesy of Wikipedia

The GNU Project, now sponsored by the Free Software Foundation, was founded in 1984 by Richard M. Stallman. The GNU Project goal was to produce “a complete Unix-like operating system which is free software.”

When programmers and companies began to make software proprietary (or closed), many people accepted this as a way of life. Stallman felt differently. Due to the proprietary nature of some software, Stallman was unable to use, distribute, and modify the code he needed to get his work done in an efficient manner. This is one of the defining moments that led to starting the GNU Project. GNU is the name of both the project and the operating system.  GNU (pronounced "guh-NEW") is a recursive acronym for GNU's Not UNIX.

This operating system includes the major components:

University of Helsinki computer science student Linus Torvalds developed a free kernel in 1992. He wrote this kernel using a Unix teaching tool called Minix—a less powerful Unix-like system. Working independently from the GNU Project, Torvalds finished his kernel before the GNU Project finished their HURD kernel.

Although Linus Torvalds knew about the GNU Project, he never informed them about the kernal he had developed. Other people combined all the parts of what is now known as Linux.

The Linux kernel is released under the GNU General Public License, or GPL. This guarantees the availability of the code for users to view or modify. For more about the GPL, see www.gnu.org/licenses/gpl.html

The GNU HURD kernel is still available and usable but has not become as widespread as the Linux kernel.

About Linux

Linux is a free operating system.  Like “free speech” most of the code is published under the GPL, which allows it to be freely distributed, modified, etc., as long as the resulting code also is licensed under the GPL.  Linux costs no money (though some vendors charge for support, installation media, etc).  But for the most part, anybody may download and install Linux free of cost.

There are many distributions (distros) available.  Some of the oldest distros are also the most stable and mature.  This course will use Knoppix, a distro that requires no installation procedure to run. There are many, many other distros available.  While students may install and use any distro they wish, installation will not be covered until well in the course.  They should also be aware of how to obtain the software that will be used throughout the course, which is also covered a bit into the course.  Following are a few of the more prominent distros:

Advantages of Linux

Linux Kernel

The Linux kernel is the core of an operating system (OS). It acts as an agent that negotiates the demands of the software and the capabilities of the hardware. The kernel manages memory resources, multi-tasking, input/output communications, file management, networking, program execution, and process scheduling. The kernel also interfaces with peripheral devices that are external to the computer. The kernel is considered the core of the OS because it controls computer hardware and is responsible for either directly controlling computer hardware or for interfacing with the software that controls the hardware.

Kernels have versions, just like other software.  Kernel versions are represented by a number, in the form of #.#.#.#.  For example, in 2.6.11.3, the first number represents the kernel version.  The second number represents the major revision, and the third number represents the minor revision. 

Even numbers indicate major revisions for stable releases while odd numbers signify major revisions in developmental versions(2.5 is a development kernel while 2.6 is stable)

The fourth number indicates a recent addition. This number varies for items that wouldn’t justify releasing even a minor revision.

Keep in mind that the kernel version is separate from the version of any other software package as well as from distro versions (i.e. Debian 5).

Linux Desktops

Linux has many choices when it comes to GUIs (Graphical User Interfaces, any way of interacting with the computer using images and usually having non-keyboard input such as a mouse or touchscreen).  They can be entire desktop environments like GNOME or KDE with file management, many built in configuration tools, application suites, and so forth; they can be very minimalistic window managers like IceWM or Blackbox; or they can be somewhere in between like Enlightenment.  While the choice is ultimately yours and can be changed at any point, many distros default to certain ones.  Knoppix uses LXDE, a lightweight desktop environment.  Feel free to explore others at a later date as you see fit.

Linux software

Software used in Linux is mostly open source and under the GPL or other similar license.  This means that the source code is available for all to see and modify.  This provides several advantages over closed source.  Since anybody can modify the code for their own purposes or share improvements, this speeds up development. It also allows bugs to be quickly found and fixed instead of waiting for developers to fix said bugs or add new features.  Security holes are quickly found and patched, making open source applications very secure.  One example is the Apache web server.

Much of the software available for Linux follows a Client/Server model.  In the past, often the client and server were on different parts of the network, and still can be. The client/server model is most often used for applications that will exist on only one computer more than one computer, but the model is just as valid for systems that have both client and server on the same machine.

Clients request services, and servers provide them.  One example of this is websites.  A client program, like Firefox or Internet Explorer, makes a request to a web-server, like Apache.  The web-server then provides the client with the materials requested and the client presents the resource to the user.

It will be useful to know some standard replacements for proprietary software that are available on Knoppix Linux:

The list could go on and on with everything from pdf viewers to ftp servers. A quick search on the internet will turn up many more replacements.

There are many other programs available for installation.  With a little research, most many programs available for Linux for a certain even obscure tasks can be found.

Variety

Perl, a programming language closely associated with Linux, has the motto, "There's More Than One Way To Do It" (TMTOWTDI, pronounced Tim Toady).  This also applies very much to Linux.  While this course will primarily use the Knoppix distro, This course allows you to chose any of the there are many distros out there.  While this course uses the vi text editor (because that is what is used on the certification tests), many other editors are available (which you should try).  For each piece of GNOME software, there is likely a counterpart KDE equivalent. Explore your options and you won't be disappointed.